<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // console.log(1);

        // setTimeout(() => {
        //     console.log(2);
        //     new Promise((resolve) => {
        //         console.log(3)
        //         resolve()
        //     }).then(() => {
        //         console.log(4)
        //     })
        // })

        // new Promise((resolve) => {
        //     console.log(5)
        //     resolve()
        //     // console.log(10)
        // }).then(() => {
        //     console.log(6)
        // })

        // setTimeout(() => {
        //     console.log(7)
        // })

        // 运行结果如下
        // 1
        // 5
        // 6
        // 2
        // 3
        // 4
        // 7

        // let p = new Promise((resolve, reject) => {
        //     console.log('promise回调函数的内部')
        //     setTimeout(() => {
        //         time = Date.now()
        //         console.log('异步任务回调函数内部的结果：' + time)
        //         return resolve(time)

        //         // reject(new Error('出错了！'))
        //     }, 1000)
        // })

        // console.log('promise的外部');

        // // then方法会有一个回调函数 ：onfulfill
        // p.then((result) => {
        //     console.log('then中获取的结果：' + result)
        // }, (error) => {
        //     console.log(error)
        // })


        // 第一部分
        let p1 = new Promise((resolve,reject) =>{
            reject(new Error("错误"))
        })

        p1.then(data=>{
            console.log(data)
        }).catch(e =>{
            console.log(e)
        })

        // 第二部分
        let p1 = new Promise((resolve,reject) =>{
            resolve(1)
        })

        let p2 = p1.then(data =>{
            return new Promise((resolve,reject) =>{
                setTimeout(() =>{
                    resolve(2)
                })
            })
        })

        console.log(p2);

        
    </script>
</body>

</html>